Dynomotion

Group: DynoMotion Message: 8230 From: bhurtss Date: 8/31/2013
Subject: Scary but harmless (i hope)
I read another post where someone mentioned this same issue. When running a program using g57 k-motion cnc started showing g54 coordinates. They are set at zero so it really started showing raw machine coordinates. It started showing this a little before the end of the program. I believe this was caused by my look ahead 10secs and the m2 at the end of the program. The control always defaults back to g54 at the end of a program. I'm guessing that m2 cancels offsets but I'm not sure. Is there a alternative code that I can use for program stop and rewind that won't cancel offsets? If not is there a way to prevent m2 from canceling offsets. I noticed this awhile back and have ignored it but it about makes me crap myself whenever I'm paying attention to the screen when this happens.

While I'm posting there are a few more things Id like to see setup more like all the other industrial controls I've used but I can live without.
First I would like to see a tool offset measure button that would set the currently selected tools z offset.
Second I would like to see set x set y and set z for fixture offsets instead of just a set all button. I don't ever set z in fixture offsets and have to go in and change z to zero every time I use this button. Also a lot of the time I will touch off x or y but don't want them to both be set because where I'm at is only relative to one or the other.

Thank you
Ben
Group: DynoMotion Message: 8239 From: Tom Kerekes Date: 9/3/2013
Subject: Re: Scary but harmless (i hope)
Hi Ben,

That should be harmless (but scary).  As you mentioned it is caused by the Interpreter working ahead.  Why do you need 10 seconds of buffereing?

Here is a patch to the GCode Interpreter that will not reset offsets at an M30 Program End (M2 will still reset things).  The EMC group that developed the public domain GCode Interpreter decided that offsets should be reset and made a list of references in the code. I suppose it helps avoid someone forgetting an offset was used in a previous Run.  I'm not sure of the best solution. 

http://dynomotion.com/Software/Patch/KMotionCNC_M30_NoReset_V431i/GCodeInterpreter.dll

Copy to the \KMotion432i\KMotion\Release directory.

Regarding a new measure tool offset button:  I assume you would like the Tool Length Table changed so that the current DRO position reads zero.  I'm not sure everyone would want the same thing.  You could probably do this with a User Button and some C code.  Would that work for you?

Similar with the SetX, SetY, SetZ.   And it is a matter of screen space.

We're open for ideas.
Regards
TK

Group: DynoMotion Message: 8244 From: bhurtss Date: 9/3/2013
Subject: Re: Scary but harmless (i hope)
Thank you for the info.
Setting the tool table and fixture offsets with user buttons would be fine I'm just not sure how to set them up? I have used many industrial controls and they are all setup with separate buttons for setting each axis and tool offsets. I see your point about space on the screen. All of the controls I have used have many screens you toggle thru. One like the k-motion main screen one for tool offsets and one for fixture offsets. They have many other screens also. I'm not suggesting you do all that. As it is I run kmotion and kmotioncnc both at the same time. Kmotioncnc is not maximized and is set in the middle off the screen. That way I can also see the motor current and temp and the axis enable and encoder counts at the same time. This has worked well for me.
As for the m30 that is what I was looking for. I set offsets in my programs so it always switches at program start anyways but I like them to stay the same till I call for something else.
The reason I have look ahead set at 10sec is because when running very large programs (1 million lines and up) I would sometimes have the crontrol stop and read a motion buffer underflow when set lower. I'm guessing something in the computer would call for resources and couldn't send info at the same time. If there's a way to prevent that that would be a better option. Would something like the mach 3 computer optimization help?

Thank you
Ben

--- In DynoMotion@yahoogroups.com, Tom Kerekes <tk@...> wrote:
>
> Hi Ben,
>
> That should be harmless (but scary).  As you mentioned it is caused by the Interpreter working ahead.  Why do you need 10 seconds of buffereing?
>
> Here is a patch to the GCode Interpreter that will not reset offsets at an M30 Program End (M2 will still reset things).  The EMC group that developed the public domain GCode Interpreter decided that offsets should be reset and made a list of references in the code. I suppose it helps avoid someone forgetting an offset was used in a previous Run.  I'm not sure of the best solution. 
>
> http://dynomotion.com/Software/Patch/KMotionCNC_M30_NoReset_V431i/GCodeInterpreter.dll
>
>
> Copy to the \KMotion432i\KMotion\Release directory.
>
> Regarding a new measure tool offset button:  I assume you would like the Tool Length Table changed so that the current DRO position reads zero.  I'm not sure everyone would want the same thing.  You could probably do this with a User Button and some C code.  Would that work for you?
>
> Similar with the SetX, SetY, SetZ.   And it is a matter of screen space.
>
>
> We're open for ideas.
> Regards
> TK
>
>
>
> ________________________________
> From: bhurtss <bhurtss@...>
> To: DynoMotion@yahoogroups.com
> Sent: Saturday, August 31, 2013 10:13 PM
> Subject: [DynoMotion] Scary but harmless (i hope)
>
>
>
>  
> I read another post where someone mentioned this same issue. When running a program using g57 k-motion cnc started showing g54 coordinates. They are set at zero so it really started showing raw machine coordinates. It started showing this a little before the end of the program. I believe this was caused by my look ahead 10secs and the m2 at the end of the program. The control always defaults back to g54 at the end of a program. I'm guessing that m2 cancels offsets but I'm not sure. Is there a alternative code that I can use for program stop and rewind that won't cancel offsets? If not is there a way to prevent m2 from canceling offsets. I noticed this awhile back and have ignored it but it about makes me crap myself whenever I'm paying attention to the screen when this happens.
>
> While I'm posting there are a few more things Id like to see setup more like all the other industrial controls I've used but I can live without.
> First I would like to see a tool offset measure button that would set the currently selected tools z offset.
> Second I would like to see set x set y and set z for fixture offsets instead of just a set all button. I don't ever set z in fixture offsets and have to go in and change z to zero every time I use this button. Also a lot of the time I will touch off x or y but don't want them to both be set because where I'm at is only relative to one or the other.
>
> Thank you
> Ben
>
Group: DynoMotion Message: 8278 From: Tom Kerekes Date: 9/6/2013
Subject: Re: Scary but harmless (i hope)
Hi Ben/Eric,

I've been trying to write some code for a User Button to "Set Current Tool Length" and I have some questions how it should work. 

Can you provide a more detailed description of how you would expect it to work.  The main issue is that loading or selecting a Tool doesn't define the GCode H parameter and even if it did it would not necessarily make it active with G43.  So any changes to the Tool Table will not necessarily change the displayed DRO value.

Any thoughts?

Regards
TK
 

Group: DynoMotion Message: 8279 From: bhurtss Date: 9/7/2013
Subject: Re: Scary but harmless (i hope)
Thanks Tom,
It is not necessary to have it update the dro. That should be done with g-code call when running the program. What I would like to be able to do is select the tool from the dropdown menu, jog my tool down too where I would like the origin too be and then hit the tool length offset button. It would update the selected tools height offset.
Something like -6.29 or whatever the current value is. On most controls that's how its done and doesn't update the dro. That way you can setup a group of tools quickly or you can set the same tool up as tool 1 2 and 3 with 3 different offsets you will call when needed.
The reason I also mentioned separate buttons for work offsets.If your trying to find a part or the faces of a vise with a edge finder you cannot be touching both sides 90 degrees apart at the same time. You would find one face that you would use to set x and then jog to where you touch the other face and set y. You would not want to change z in most cases. You would use your tool h offset for z reference to the part.

Thanks again.
Ben
--- In DynoMotion@yahoogroups.com, Tom Kerekes <tk@...> wrote:
>
> Hi Ben/Eric,
>
> I've been trying to write some code for a User Button to "Set Current Tool Length" and I have some questions how it should work. 
>
>
> Can you provide a more detailed description of how you would expect it to work.  The main issue is that loading or selecting a Tool doesn't define the GCode H parameter and even if it did it would not necessarily make it active with G43.  So any changes to the Tool Table will not necessarily change the displayed DRO value.
>
> Any thoughts?
>
> Regards
> TK
>
>  
>
>
>
> ________________________________
> From: bhurtss <bhurtss@...>
> To: DynoMotion@yahoogroups.com
> Sent: Tuesday, September 3, 2013 2:51 PM
> Subject: [DynoMotion] Re: Scary but harmless (i hope)
>
>
>
>  
> Thank you for the info.
> Setting the tool table and fixture offsets with user buttons would be fine I'm just not sure how to set them up? I have used many industrial controls and they are all setup with separate buttons for setting each axis and tool offsets. I see your point about space on the screen. All of the controls I have used have many screens you toggle thru. One like the k-motion main screen one for tool offsets and one for fixture offsets. They have many other screens also. I'm not suggesting you do all that. As it is I run kmotion and kmotioncnc both at the same time. Kmotioncnc is not maximized and is set in the middle off the screen. That way I can also see the motor current and temp and the axis enable and encoder counts at the same time. This has worked well for me.
> As for the m30 that is what I was looking for. I set offsets in my programs so it always switches at program start anyways but I like them to stay the same till I call for something else.
> The reason I have look ahead set at 10sec is because when running very large programs (1 million lines and up) I would sometimes have the crontrol stop and read a motion buffer underflow when set lower. I'm guessing something in the computer would call for resources and couldn't send info at the same time. If there's a way to prevent that that would be a better option. Would something like the mach 3 computer optimization help?
>
> Thank you
> Ben
>
> --- In DynoMotion@yahoogroups.com, Tom Kerekes <tk@> wrote:
> >
> > Hi Ben,
> >
> > That should be harmless (but scary).  As you mentioned it is caused by the Interpreter working ahead.  Why do you need 10 seconds of buffereing?
> >
> > Here is a patch to the GCode Interpreter that will not reset offsets at an M30 Program End (M2 will still reset things).  The EMC group that developed the public domain GCode Interpreter decided that offsets should be reset and made a list of references in the code. I suppose it helps avoid someone forgetting an offset was used in a previous Run.  I'm not sure of the best solution. 
> >
> > http://dynomotion.com/Software/Patch/KMotionCNC_M30_NoReset_V431i/GCodeInterpreter.dll
> >
> >
> > Copy to the \KMotion432i\KMotion\Release directory.
> >
> > Regarding a new measure tool offset button:  I assume you would like the Tool Length Table changed so that the current DRO position reads zero.  I'm not sure everyone would want the same thing.  You could probably do this with a User Button and some C code.  Would that work for you?
> >
> > Similar with the SetX, SetY, SetZ.   And it is a matter of screen space.
> >
> >
> > We're open for ideas.
> > Regards
> > TK
> >
> >
> >
> > ________________________________
> > From: bhurtss <bhurtss@>
> > To: DynoMotion@yahoogroups.com
> > Sent: Saturday, August 31, 2013 10:13 PM
> > Subject: [DynoMotion] Scary but harmless (i hope)
> >
> >
> >
> >  
> > I read another post where someone mentioned this same issue. When running a program using g57 k-motion cnc started showing g54 coordinates. They are set at zero so it really started showing raw machine coordinates. It started showing this a little before the end of the program. I believe this was caused by my look ahead 10secs and the m2 at the end of the program. The control always defaults back to g54 at the end of a program. I'm guessing that m2 cancels offsets but I'm not sure. Is there a alternative code that I can use for program stop and rewind that won't cancel offsets? If not is there a way to prevent m2 from canceling offsets. I noticed this awhile back and have ignored it but it about makes me crap myself whenever I'm paying attention to the screen when this happens.
> >
> > While I'm posting there are a few more things Id like to see setup more like all the other industrial controls I've used but I can live without.
> > First I would like to see a tool offset measure button that would set the currently selected tools z offset.
> > Second I would like to see set x set y and set z for fixture offsets instead of just a set all button. I don't ever set z in fixture offsets and have to go in and change z to zero every time I use this button. Also a lot of the time I will touch off x or y but don't want them to both be set because where I'm at is only relative to one or the other.
> >
> > Thank you
> > Ben
> >
>
Group: DynoMotion Message: 8293 From: Tom Kerekes Date: 9/9/2013
Subject: Re: Scary but harmless (i hope)
Hi Ben,

Thanks that's what I needed to know.

Here is a new Test Version V4.31k with a bit more functionally added so that KFLOP User programs can calculate and update the ToolTable and Fixture Offsets.

http://dynomotion.com/Software/KMotion431k.exe

There are 3 new example User Programs called:

C:\KMotion431k\C Programs\ToolTableSet.c
C:\KMotion431k\C Programs\SetFixtureX.c
C:\KMotion431k\C Programs\SetFixtureY.c

That should perform the operations you describe.

Please let us know if they work for you.

Regards
TK



Group: DynoMotion Message: 8341 From: bhurtss Date: 9/13/2013
Subject: Re: Scary but harmless (i hope)
Awesome,
Thank you very much. I set the buttons to run a user program. I selected the matching program number and everything works perfectly so far. It does bring me to a few more questions. I left the .var set at 0. Is that ok. If yes then when would I need to use a variable and which ones are available?
Also I see a lot of people talking about using linear scales. If I build a machine using servos do I have to use shaft encoders or can I just use scales only?

Thanks again
Ben
Group: DynoMotion Message: 8348 From: Tom Kerekes Date: 9/13/2013
Subject: Re: Scary but harmless (i hope)
Hi Ben,

Var=0 is ok.   The User Buttons only invoke user programs without passing any useful data (a code is transferred that identifies which button it is, but in this case it is not needed).

Regarding linear scales please see my last post.

Regards
TK

Group: DynoMotion Message: 8506 From: ericncn Date: 10/22/2013
Subject: Re: Scary but harmless (i hope)
Ben,
while I acknowledge there are some special circumstances where you could live without setting Z by means of doing everything with tool h offset, more generally speaking there are other circumstanes where setting Z is needed.

Here are attached SetFixtureZ.c (added) and SetFixtureX.c and SetFixtureY.c again (slighly changed).  (Tom, obviously feel free to delete these files if you don't like them).

Regarding touching the faces of the vise with the edge finder and then setting to zero the corresponding axe... aren't you forgetting you are half diameter away from the face?
How do you do?
Do you touch, zero the axe, lift on Z, then move in by half diameter, then zero again?

Regards
EC

---In dynomotion@yahoogroups.com, <bhurtss@...> wrote:
You would find one face that you would use to set x and then jog to where you touch the other face and set y. You would not want to change z in most cases. You would use your tool h offset for z reference to the part.
Thanks again.
Ben
  @@attachment@@
Group: DynoMotion Message: 8508 From: bhurtss Date: 10/22/2013
Subject: Re: Scary but harmless (i hope)

 Ec

   Tom has already provided me with c programs for the user buttons to set fixture x /y and z h offsets. I have been using them for some time and they work perfectly. I do raise z at times then jog over .1 for my edge finder then zero again. At other times I raise z and the just add or subtract the .1 directly to to the offset tables saved value. Im sure some people do like to change the global offsets for z and that's the way I did it in k-motion cnc before Tom helped me with the user buttons. I prefer to have the option of setting the h offsets because that is what I use on the industrial mills and routers I have worked on when setting multiple tools in a atc setup. I don't use global offsets if I can help it because they then have to be accounted for when setting fixture offsets. I like knowing that home is where I home to. I always leave g-54 unset so if I use m2  at the end of a program it basically defaults to g-53 values.


Thanks

Ben



---In dynomotion@yahoogroups.com, <ericnc@...> wrote:

Ben,
while I acknowledge there are some special circumstances where you could live without setting Z by means of doing everything with tool h offset, more generally speaking there are other circumstanes where setting Z is needed.

Here are attached SetFixtureZ.c (added) and SetFixtureX.c and SetFixtureY.c again (slighly changed).  (Tom, obviously feel free to delete these files if you don't like them).

Regarding touching the faces of the vise with the edge finder and then setting to zero the corresponding axe... aren't you forgetting you are half diameter away from the face?
How do you do?
Do you touch, zero the axe, lift on Z, then move in by half diameter, then zero again?

Regards
EC

---In dynomotion@yahoogroups.com, <bhurtss@...> wrote:
You would find one face that you would use to set x and then jog to where you touch the other face and set y. You would not want to change z in most cases. You would use your tool h offset for z reference to the part.
Thanks again.
Ben
Group: DynoMotion Message: 8511 From: ericncn Date: 10/22/2013
Subject: Re: Scary but harmless (i hope)

Yes, yes, I know it's Tom's programs! I read all the thread... I reposted the X and Y programs with small changes, and added the missing Z program.


Thanks for the clarifications

EC




---In DynoMotion@yahoogroups.com, <dynomotion@yahoogroups.com> wrote:

 Ec

   Tom has already provided me with c programs for the user buttons to set fixture x /y and z h offsets. I have been using them for some time and they work perfectly. I do raise z at times then jog over .1 for my edge finder then zero again. At other times I raise z and the just add or subtract the .1 directly to to the offset tables saved value. Im sure some people do like to change the global offsets for z and that's the way I did it in k-motion cnc before Tom helped me with the user buttons. I prefer to have the option of setting the h offsets because that is what I use on the industrial mills and routers I have worked on when setting multiple tools in a atc setup. I don't use global offsets if I can help it because they then have to be accounted for when setting fixture offsets. I like knowing that home is where I home to. I always leave g-54 unset so if I use m2  at the end of a program it basically defaults to g-53 values.


Thanks

Ben



---In dynomotion@yahoogroups.com, <ericnc@...> wrote:

Ben,
while I acknowledge there are some special circumstances where you could live without setting Z by means of doing everything with tool h offset, more generally speaking there are other circumstanes where setting Z is needed.

Here are attached SetFixtureZ.c (added) and SetFixtureX.c and SetFixtureY.c again (slighly changed).  (Tom, obviously feel free to delete these files if you don't like them).

Regarding touching the faces of the vise with the edge finder and then setting to zero the corresponding axe... aren't you forgetting you are half diameter away from the face?
How do you do?
Do you touch, zero the axe, lift on Z, then move in by half diameter, then zero again?

Regards
EC

---In dynomotion@yahoogroups.com, <bhurtss@...> wrote:
You would find one face that you would use to set x and then jog to where you touch the other face and set y. You would not want to change z in most cases. You would use your tool h offset for z reference to the part.
Thanks again.
Ben
Group: DynoMotion Message: 8519 From: bhurtss Date: 10/23/2013
Subject: Re: Scary but harmless (i hope)

 Sorry I think I misunderstood you. The Z program you added was for fixture offsets not tool height offsets? If so thank you. Do you mind explaining the changes you made to the originals? I'm not really any good with c and it will help me understand the purpose behind different statements. Again thank you.


Ben



---In dynomotion@yahoogroups.com, <ericnc@...> wrote:

Yes, yes, I know it's Tom's programs! I read all the thread... I reposted the X and Y programs with small changes, and added the missing Z program.


Thanks for the clarifications

EC




---In DynoMotion@yahoogroups.com, <dynomotion@yahoogroups.com> wrote:

 Ec

   Tom has already provided me with c programs for the user buttons to set fixture x /y and z h offsets. I have been using them for some time and they work perfectly. I do raise z at times then jog over .1 for my edge finder then zero again. At other times I raise z and the just add or subtract the .1 directly to to the offset tables saved value. Im sure some people do like to change the global offsets for z and that's the way I did it in k-motion cnc before Tom helped me with the user buttons. I prefer to have the option of setting the h offsets because that is what I use on the industrial mills and routers I have worked on when setting multiple tools in a atc setup. I don't use global offsets if I can help it because they then have to be accounted for when setting fixture offsets. I like knowing that home is where I home to. I always leave g-54 unset so if I use m2  at the end of a program it basically defaults to g-53 values.


Thanks

Ben



---In dynomotion@yahoogroups.com, <ericnc@...> wrote:

Ben,
while I acknowledge there are some special circumstances where you could live without setting Z by means of doing everything with tool h offset, more generally speaking there are other circumstanes where setting Z is needed.

Here are attached SetFixtureZ.c (added) and SetFixtureX.c and SetFixtureY.c again (slighly changed).  (Tom, obviously feel free to delete these files if you don't like them).

Regarding touching the faces of the vise with the edge finder and then setting to zero the corresponding axe... aren't you forgetting you are half diameter away from the face?
How do you do?
Do you touch, zero the axe, lift on Z, then move in by half diameter, then zero again?

Regards
EC

---In dynomotion@yahoogroups.com, <bhurtss@...> wrote:
You would find one face that you would use to set x and then jog to where you touch the other face and set y. You would not want to change z in most cases. You would use your tool h offset for z reference to the part.
Thanks again.
Ben
Group: DynoMotion Message: 8520 From: ericncn Date: 10/23/2013
Subject: Re: Scary but harmless (i hope)

Yeah, yeah, no problem. 

Yes the Z program I added is the missing fixture offset Z axis. Try it with confidence, I've tested it on my own machine before posting! :-)


Regarding the changes I've just replaced these lines in Tom's programs:


(in SetFixtureX.c)  SetVars(5201+FixtureIndex*20+0, 1, TMP);

(in SetFixtureY.c)  SetVars(5201+FixtureIndex*20+1, 1, TMP);


with these:

(in SetFixtureX.c)  SetVars(5201+FixtureIndex*20+Xaxis, 1, TMP);

(in SetFixtureY.c)  SetVars(5201+FixtureIndex*20+Yaxis, 1, TMP);


They really change nothing in the functionality, it's just to prevent possible mistakes when working on the code. So for example in the added "Z program" I just wrote:

(in SetFixtureZ.c)  SetVars(5201+FixtureIndex*20+Zaxis, 1, TMP);

and adding more axis would be straighforward


Regards

EC


---In DynoMotion@yahoogroups.com, <dynomotion@yahoogroups.com> wrote:

 Sorry I think I misunderstood you. The Z program you added was for fixture offsets not tool height offsets? If so thank you. Do you mind explaining the changes you made to the originals? I'm not really any good with c and it will help me understand the purpose behind different statements. Again thank you.


Ben



---In dynomotion@yahoogroups.com, <ericnc@...> wrote:

Yes, yes, I know it's Tom's programs! I read all the thread... I reposted the X and Y programs with small changes, and added the missing Z program.


Thanks for the clarifications

EC




---In DynoMotion@yahoogroups.com, <dynomotion@yahoogroups.com> wrote:

 Ec

   Tom has already provided me with c programs for the user buttons to set fixture x /y and z h offsets. I have been using them for some time and they work perfectly. I do raise z at times then jog over .1 for my edge finder then zero again. At other times I raise z and the just add or subtract the .1 directly to to the offset tables saved value. Im sure some people do like to change the global offsets for z and that's the way I did it in k-motion cnc before Tom helped me with the user buttons. I prefer to have the option of setting the h offsets because that is what I use on the industrial mills and routers I have worked on when setting multiple tools in a atc setup. I don't use global offsets if I can help it because they then have to be accounted for when setting fixture offsets. I like knowing that home is where I home to. I always leave g-54 unset so if I use m2  at the end of a program it basically defaults to g-53 values.


Thanks

Ben



---In dynomotion@yahoogroups.com, <ericnc@...> wrote:

Ben,
while I acknowledge there are some special circumstances where you could live without setting Z by means of doing everything with tool h offset, more generally speaking there are other circumstanes where setting Z is needed.

Here are attached SetFixtureZ.c (added) and SetFixtureX.c and SetFixtureY.c again (slighly changed).  (Tom, obviously feel free to delete these files if you don't like them).

Regarding touching the faces of the vise with the edge finder and then setting to zero the corresponding axe... aren't you forgetting you are half diameter away from the face?
How do you do?
Do you touch, zero the axe, lift on Z, then move in by half diameter, then zero again?

Regards
EC

---In dynomotion@yahoogroups.com, <bhurtss@...> wrote:
You would find one face that you would use to set x and then jog to where you touch the other face and set y. You would not want to change z in most cases. You would use your tool h offset for z reference to the part.
Thanks again.
Ben
Group: DynoMotion Message: 8587 From: ericncn Date: 11/7/2013
Subject: Re: Scary but harmless (i hope)

I've just realized that the SetFixtureZ.c program I posted earlier, only works if no tool height compensation is active.

Here is attached an updated version that also works with height compensation.


Well, it would work if the GetToolLength() funcrion defined in  KflopToKMotionCNCFunctions.c would also behave as expected.


Tom, can you help?

It looks me that the GetToolLength() funcrion returns the lenght of the NEXT tool in the table.

If you add this line to the function you'll see what I mean:

printf("index %i, tool length %.4lf\n", index, pD[TMP]);


As a quick fix I tried replacing "index" with "index-1" in the DoPCInt() call but it doesn't always work; I feel the problem is elsewhere...


Thank you

EC




---In dynomotion@yahoogroups.com, <ericnc@...> wrote:

Yeah, yeah, no problem. 

Yes the Z program I added is the missing fixture offset Z axis. Try it with confidence, I've tested it on my own machine before posting! :-)


Regarding the changes I've just replaced these lines in Tom's programs:


(in SetFixtureX.c)  SetVars(5201+FixtureIndex*20+0, 1, TMP);

(in SetFixtureY.c)  SetVars(5201+FixtureIndex*20+1, 1, TMP);


with these:

(in SetFixtureX.c)  SetVars(5201+FixtureIndex*20+Xaxis, 1, TMP);

(in SetFixtureY.c)  SetVars(5201+FixtureIndex*20+Yaxis, 1, TMP);


They really change nothing in the functionality, it's just to prevent possible mistakes when working on the code. So for example in the added "Z program" I just wrote:

(in SetFixtureZ.c)  SetVars(5201+FixtureIndex*20+Zaxis, 1, TMP);

and adding more axis would be straighforward


Regards

EC


---In DynoMotion@yahoogroups.com, <dynomotion@yahoogroups.com> wrote:

 Sorry I think I misunderstood you. The Z program you added was for fixture offsets not tool height offsets? If so thank you. Do you mind explaining the changes you made to the originals? I'm not really any good with c and it will help me understand the purpose behind different statements. Again thank you.


Ben



---In dynomotion@yahoogroups.com, <ericnc@...> wrote:

Yes, yes, I know it's Tom's programs! I read all the thread... I reposted the X and Y programs with small changes, and added the missing Z program.


Thanks for the clarifications

EC




---In DynoMotion@yahoogroups.com, <dynomotion@yahoogroups.com> wrote:

 Ec

   Tom has already provided me with c programs for the user buttons to set fixture x /y and z h offsets. I have been using them for some time and they work perfectly. I do raise z at times then jog over .1 for my edge finder then zero again. At other times I raise z and the just add or subtract the .1 directly to to the offset tables saved value. Im sure some people do like to change the global offsets for z and that's the way I did it in k-motion cnc before Tom helped me with the user buttons. I prefer to have the option of setting the h offsets because that is what I use on the industrial mills and routers I have worked on when setting multiple tools in a atc setup. I don't use global offsets if I can help it because they then have to be accounted for when setting fixture offsets. I like knowing that home is where I home to. I always leave g-54 unset so if I use m2  at the end of a program it basically defaults to g-53 values.


Thanks

Ben



---In dynomotion@yahoogroups.com, <ericnc@...> wrote:

Ben,
while I acknowledge there are some special circumstances where you could live without setting Z by means of doing everything with tool h offset, more generally speaking there are other circumstanes where setting Z is needed.

Here are attached SetFixtureZ.c (added) and SetFixtureX.c and SetFixtureY.c again (slighly changed).  (Tom, obviously feel free to delete these files if you don't like them).

Regarding touching the faces of the vise with the edge finder and then setting to zero the corresponding axe... aren't you forgetting you are half diameter away from the face?
How do you do?
Do you touch, zero the axe, lift on Z, then move in by half diameter, then zero again?

Regards
EC

---In dynomotion@yahoogroups.com, <bhurtss@...> wrote:
You would find one face that you would use to set x and then jog to where you touch the other face and set y. You would not want to change z in most cases. You would use your tool h offset for z reference to the part.
Thanks again.
Ben
  @@attachment@@
Group: DynoMotion Message: 8588 From: Tom Kerekes Date: 11/7/2013
Subject: Re: Scary but harmless (i hope) [1 Attachment]
Hi EC,

I think you did find a off by one bug.

But I think the main confusion might be around what we are expecting the SetFixtureZ.c Button to do.  There are two different Words T and H.  My understanding is T is more for controlling the Tool Changer.  H is the one actually selecting which Tool Table Entry to be used by the GCode.  Furthermore the length offset may or may not be active when the button is pushed.

Ben and I discussed this regarding the Tool Table Set Button.  It computes the Tool Length for tool T such that if the Tool was selected as the H word and made active then the DRO would show zero.  But not necessarily make it zero immediately.  I think the same thing might apply for your button.

That being said what were you expecting?  What sequence are you doing and what happens?

Regards
TK


Group: DynoMotion Message: 8589 From: ericncn Date: 11/8/2013
Subject: Re: Scary but harmless (i hope) [1 Attachment]

Ah, OK. Sorry, I had no idea what those  TWORD, HWORD, DWORD were, I just copied the code from the call to SetToolLength() in ToolTableSet.c.


Anyway regarding the expected behaviour, I now have two buttons in my interface, one calls ToolTableSet.c (your file, unchanged) and the other calls SetFixtureZ.c (the file I posted)


ToolTableSet.c zeros the Z axe by altering the tool heigth and leaving the Z offset unchanged

(you do this when you are e.g. measuring the tools by touching a tool heigth setter)


SetFixtureZ.c should zero the Z axe by altering the Z offset and leaving the tool heigth unchanged

(you do this most of the time, when you are finding the Z reference plane of a workpiece by touching it with a tool or a probe which heigth was measured previously)


Thank you

EC



---In DynoMotion@yahoogroups.com, <tk@...> wrote:

Hi EC,

I think you did find a off by one bug.

But I think the main confusion might be around what we are expecting the SetFixtureZ.c Button to do.  There are two different Words T and H.  My understanding is T is more for controlling the Tool Changer.  H is the one actually selecting which Tool Table Entry to be used by the GCode.  Furthermore the length offset may or may not be active when the button is pushed.

Ben and I discussed this regarding the Tool Table Set Button.  It computes the Tool Length for tool T such that if the Tool was selected as the H word and made active then the DRO would show zero.  But not necessarily make it zero immediately.  I think the same thing might apply for your button.

That being said what were you expecting?  What sequence are you doing and what happens?

Regards
TK


Group: DynoMotion Message: 8590 From: ericncn Date: 11/8/2013
Subject: Re: Scary but harmless (i hope) [1 Attachment]

(missing part of my reply follows)


Regarding the fact length offset may or may not be active when the button is pushed, I personally would expect that IF length offset isn't active when button is pushed THEN tool length is ignored.


I forgot to implement it in SetFixtureZ.c; It would probably be something like:


if( tool_heigth_compensation_active() )

    NewOriginOffset = Machinez -  AxisOffsetZ - ToolLength;

else

    NewOriginOffset = Machinez -  AxisOffsetZ;


Regards,

EC







---In DynoMotion@yahoogroups.com, <ericnc@...> wrote:

Ah, OK. Sorry, I had no idea what those  TWORD, HWORD, DWORD were, I just copied the code from the call to SetToolLength() in ToolTableSet.c.


Anyway regarding the expected behaviour, I now have two buttons in my interface, one calls ToolTableSet.c (your file, unchanged) and the other calls SetFixtureZ.c (the file I posted)


ToolTableSet.c zeros the Z axe by altering the tool heigth and leaving the Z offset unchanged

(you do this when you are e.g. measuring the tools by touching a tool heigth setter)


SetFixtureZ.c should zero the Z axe by altering the Z offset and leaving the tool heigth unchanged

(you do this most of the time, when you are finding the Z reference plane of a workpiece by touching it with a tool or a probe which heigth was measured previously)


Thank you

EC



---In DynoMotion@yahoogroups.com, <tk@...> wrote:

Hi EC,

I think you did find a off by one bug.

But I think the main confusion might be around what we are expecting the SetFixtureZ.c Button to do.  There are two different Words T and H.  My understanding is T is more for controlling the Tool Changer.  H is the one actually selecting which Tool Table Entry to be used by the GCode.  Furthermore the length offset may or may not be active when the button is pushed.

Ben and I discussed this regarding the Tool Table Set Button.  It computes the Tool Length for tool T such that if the Tool was selected as the H word and made active then the DRO would show zero.  But not necessarily make it zero immediately.  I think the same thing might apply for your button.

That being said what were you expecting?  What sequence are you doing and what happens?

Regards
TK


Group: DynoMotion Message: 8591 From: Tom Kerekes Date: 11/8/2013
Subject: Re: Scary but harmless (i hope)
Hi EC,

If you simply want to adjust the Fixture Z offset to make the DRO Z be zero regardless of everything then the simplest thing might be to adjust the Fixture Z Offset by the amount in the DRO.

Try the attached code.

Regards
TK

Group: DynoMotion Message: 8592 From: ericncn Date: 11/9/2013
Subject: Re: Scary but harmless (i hope)

 Thank you Tom,


I'll try it as soon as possible and let you know


EC



---In DynoMotion@yahoogroups.com, <tk@...> wrote:

Hi EC,

If you simply want to adjust the Fixture Z offset to make the DRO Z be zero regardless of everything then the simplest thing might be to adjust the Fixture Z Offset by the amount in the DRO.

Try the attached code.

Regards
TK

Group: DynoMotion Message: 8623 From: ericncn Date: 11/13/2013
Subject: Re: Scary but harmless (i hope)

Thank you Tom,


today I had a chance to run the machine and it works as expected!

Thank you a lot!


EC



---In DynoMotion@yahoogroups.com, <tk@...> wrote:

Hi EC,

If you simply want to adjust the Fixture Z offset to make the DRO Z be zero regardless of everything then the simplest thing might be to adjust the Fixture Z Offset by the amount in the DRO.

Try the attached code.

Regards
TK